#ifndef SAMPLECLIENT_H_
#define SAMPLECLIENT_H_

#include <OTClient.h>

class SampleClient : public OTClient 
{
public:
    SampleClient() ;
    
    //
    // Overloaded OTClient methods to handle various events. 
    //
    virtual void onLogin          () ;
    virtual void onError          ( OTError* otError ) ;
    virtual void onListExchanges  ( OTExchange* listExchange, 
                                    int         exchangeNum ) ;
    virtual void onTodaysOHL      ( int    requestId, 
                                    double openPrice, 
                                    double highPrice, 
                                    double lowPrice) ;
    virtual void onMessage        ( OTMessage* otMessage ) ; 
    virtual void onRealtimeQuote  ( OTQuote* otQuote ) ;
    virtual void onRealtimeMMQuote( OTMMQuote* otMmQuote ) ;
    virtual void onRealtimeTrade  ( OTTrade* otTrade ) ; 
    virtual void onHistQuote      ( OTQuote* otQuote ) ;
    virtual void onHistMMQuote    ( OTMMQuote* mmQuote ) ;
    virtual void onHistTrade      ( OTTrade* otTrade ) ;
    virtual void onHistOHLC       ( OTOHLC* data ) ;

    virtual void onStatusChanged  ( int status ) ;
    virtual void onEquityInit     ( OTEquityInit* equityInit ) ;
    virtual void onBookCancel     ( OTBookCancel* bookCancel ) ;
    virtual void onBookChange     ( OTBookChange* bookChange ) ;
    virtual void onBookDelete     ( OTBookDelete* bookDelete ) ;
    virtual void onBookExecute    ( OTBookExecute* bookExecute ) ;
    virtual void onBookOrder      ( OTBookOrder* bookOrder ) ;
    virtual void onBookPriceLevel ( OTBookPriceLevel* bookPriceLevel ) ;
    virtual void onBookPurge      ( OTBookPurge* bookPurge ) ;
    virtual void onBookReplace    ( OTBookReplace* bookReplace ) ;
    virtual void onRealtimeBBO    ( OTBBO* bbo ) ; 
    virtual void onRestoreConnection() ;
} ;

inline
SampleClient::SampleClient() 
{
    /* empty */
}


#endif /*SAMPLECLIENT_H_*/
